import { DefaultStage } from '../default-stage';
import { AbstractBloc, IAbstractBlocOptions } from './abstract-bloc';

/**
 * 玩家势力
 * @property {string} userId 玩家Id
 * @property {string} userName 玩家名称
 */
interface IPlayerBlocOptions extends IAbstractBlocOptions {
    userId:string;
    userName:string;
}


class PlayerBlock extends AbstractBloc<IPlayerBlocOptions> {

    constructor(stage: DefaultStage, options: IPlayerBlocOptions) {
        super(stage, options);
        /**
         * 用户军队的来源：
         *  1.人口：
         *      势力所有建筑的人口总和，按当前的征兵比例确定。军队产生后不会自动下降，即使势力人口下降
         *      或征兵比例下降。军队数量下降可以是战争消耗，也可以是裁军。设定的征兵比例是控制军备扩张
         *      的，并不会自动降低军队上限，所以实际的军民比例会高于征兵比例。而征兵比例过高会有负面影
         *      响，比如，如果军队数量保持不变，但因为战争导致人口大规模下降，这时的实际军民比例会远高
         *      于正常值，可能就需要主动进行裁军了。
         * 2.战争：
         *      战败通常会导致部队人员减少，进而降低势力军队数量。战胜有时候能够攻取建筑或获得奴隶，二
         *      者都可以增加人口，进而增加军队数量。
         * 
         * 用户军队的调遣：
         *  1.立即调遣：
         *      势力初始化后一段时间内（显示倒计时），按初始人口和初始征兵比例计算可任意分配的军队总量，....................取消立即调遣？？？
         *      玩家可调遣总量范围内的任意数量军队到任意建筑，调遣为立即执行，即没有行军时间，如果倒计
         *      时结束时，仍有未调遣的军队，那么，剩下的军队将自动分配到所有建筑，分配的规则为按建筑人
         *      口比例分配。立即调遣是不可逆的，一旦特定数量的军队被立即调遣，则无法被撤回重新立即调遣，
         *      而只能使用普通的行军调遣。
         *  2.行军调遣：
         *      初始调遣完成或倒计时结束后，所有部队都只能进行行军调遣。即选中部队，然后选择路线，部队
         *      按特定速度沿着行军路线前进，途中可能被阻挡或攻击等。后续军队数量仍然可能因各种原因而增
         *      加，但增加的军队亦不适用立即调遣，增加的军队将按人口比例自动分配到各建筑。
         */
    }

}


export { PlayerBlock };